// pages/sign/sign.js
const request = require('../../utils/promise')
const url = require('../../utils/link')
var app=getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 下拉框使用数据
    // 下拉框初始值
    multiArray: [['海淀区-街镇大厅', '海淀区-综厅、专厅', '大兴区-镇街大厅', '大兴区-区级大厅'], ['万寿路街道', '永定路街道', '田村路街道', '紫竹院街道', '八里庄街道', '北下关街道', '北太平庄街道', '学院路街道', '花园路街道', '东升镇', '甘家口街道', '海淀街道', '海淀镇', '马连洼街道', '青龙桥街道', '清河街道', '西三旗街道', '中关村街道', '清华园街道', '上地街道', '上庄镇', '曙光街道', '四季青镇', '苏家坨镇', '温泉镇', '西北旺镇', '香山街道', '燕园街道', '羊坊店街道'], ['第一期', '第二期', '第三期', '第四期', '第五期', '第六期']],
    // 下拉框初始下标
    multiIndex: [0, 0, 0],
    // 这里是供多选框使用的列表
    // 区域列表
    area:[],
    selectedArea:0,
    // 评价表列表（一个区对应一个评价表）
    evaluation:[],
    selectedEvaluation:0,
    // 厅列表
    ting:[],
    selectedTing:0,
    // 期列表
    phase:[1 , 2 , 3 , 4 , 5 , 6],
    selectedPhase:0,
    // 用户token
    selectedUser: null,
    // 文字主体需要数据
    textList:[],
    // 右下角注释需要数据
    notes:[{
      submitTimes: 0,
      submitTime: '2023-11-15 14:40'
    }],
    // 控制新建按钮是否显示
    createButtonVisible: false
    // 
  },
  // 选择框点确认之后的处理逻辑
  bindMultiPickerChange: function (e) {
    // 先把多选框的index值存起来
    this.setData({
      multiIndex: e.detail.value
    })
    // 根据区域名匹配区域id
    for(let i = 0 ; i < this.data.area.data.length; i++) {
      if(this.data.area.data[i].name === this.data.multiArray[0][this.data.multiIndex[0]]) {
        this.setData({
          selectedArea: this.data.area.data[i].id
        })
      }
    }
    // 根据厅名匹配厅id
    for(let i = 0 ; i < this.data.ting.data.length; i++) {
      if(this.data.ting.data[i].name === this.data.multiArray[1][this.data.multiIndex[1]]) {
        this.setData({
          selectedTing: this.data.ting.data[i].id
        })
      }
    }
     // 直接匹配期数
     this.setData({
      selectedPhase:  this.data.multiIndex[2] + 1
    })
     // 用户token记录
     this.setData({
      selectedUser: wx.getStorageSync('token')
     })
     // 开始查询（）
     this.refreshData()
     // 查询结束后给一新建表格框，可以新建一张表
     this.setData({
      createButtonVisible: true
     })
     // 查询结束后将页面信息记录在token里，如果跳转下次回来的时候可以直接拿来用
     wx.setStorageSync('selectedArea', this.data.selectedArea)
     wx.setStorageSync('selectedTing', this.data.selectedTing)
     wx.setStorageSync('selectedPhase', this.data.selectedPhase)
     wx.setStorageSync('selectedUser', this.data.selectedUser)
  },
  // 选择框修改时候的处理逻辑
  bindMultiPickerColumnChange: function (e) {
    var data = {
      // 当前选择框的三个数组
      // 0 —— 区 1 —— 厅 2 —— 期
      multiArray: this.data.multiArray,
      // 当前选择框的三个数组下标
      // 0 —— 区 1 —— 厅 2 —— 期
      multiIndex: this.data.multiIndex
    };
    data.multiIndex[e.detail.column] = e.detail.value;
    // 获取multiArray的第1项————区
    // 获取的步骤不在这里，在onload的时候就已经确定了

    // 获取multiArray的第2项————厅
    // 1.找到对应的区表id
    let areaId = this.data.area.data[[data.multiIndex[0]]].id
    // 2.在厅表中查找所有符合区表id的表项
    let originTing = this.data.ting.data
    let ting = originTing.filter((value) => {
      return value.areaId === areaId
    })
    console.log(originTing)
    console.log(ting)
    // 3.将符合条件的区表项存入multiArray
    let tingName = []
    for(let i = 0 ; i < ting.length ; i++) 
      tingName[i] = ting[i].name
    data.multiArray[1] = tingName

    // 获取multiArray的第3项————期
    data.multiArray[2] = ['第一期', '第二期', '第三期', '第四期', '第五期', '第六期'];
    
    // 将这些数据导入data里
    this.setData(data);
  },
  // 更新页面
  async refreshData() {
    const { data: res } = await request.get(url.getScore , {areaId: this.data.selectedArea , tingId: this.data.selectedTing , qi:this.data.selectedPhase , user: this.data.selectedUser, currentPage: 1 , pageSize: 200})
    this.setData({
      textList: res.data.data
    })
  },
  // 用户点击进入
  async handleUserClick(event) {
    const index = event.currentTarget.dataset.index;
    var evaluationId = this.data.textList[index].evaluationId
    var scoreId = this.data.textList[index].id
    wx.navigateTo({
      url: '/pages/details/details?evaluationId=' + encodeURIComponent(evaluationId) + '&scoreId=' + encodeURIComponent(scoreId)
    });
  },
  // 用户点击删除
   handleUserDelete(event) {
     let that = this
    // 删除提示框
    wx.showModal({
      title: '',
      content: '是否确认删除',
      async success(res) {
       // 用户确认删除
       if (res.confirm) {
        // 删除逻辑
        const index = event.currentTarget.dataset.index;
        var selectedText = that.data.textList[index]
        console.log(selectedText)
        const { data: res1 } = await request.Delete(url.scoreDelete , selectedText)
        console.log(res1)
        that.refreshData()
        // 删除之后的提示框
        wx.showToast({
          title: '成功',
          icon: 'success',
          duration: 2000
        })
       } else if (res.cancel) {
        // 取消删除之后的提示框
        wx.showToast({
          title: '已取消',
          icon: 'error',
          duration: 2000
        })
       }
      }
     })
  },
  // 用户点击创建
  async handleUserCreate() {
    var that = this
    wx.showModal({
      title: '请输入打分表名',
      editable: true,
      success: async function (res) {
        if (res.confirm) {
          // 用户点击确定按钮
          console.log('用户点击确定')
          console.log(res.content)
          // 每一个区域对应一个评估表，把评估表筛选出来
          const { data: res1 } =await request.get(url.listEvaluation , {query: "" , value: "" , currentPage: 1 , pageSize: 200})
          that.data.evaluation = res1.data.data
          for (let index = 0; index < res1.data.data.length; index++) {
            const element = res1.data.data[index];
            if(element.areaId == that.data.selectedArea){
              that.setData({
                selectedEvaluation: element.id
              })
            }
          }
          // 创建表格的api
          const temp = {
            userId: wx.getStorageSync('token'),
            date: new Date().getTime(),
            status: '未提交',
            name: res.content,
            qi: that.data.selectedPhase,
            evaluationId: that.data.selectedEvaluation,
            tingId: that.data.selectedTing,
          }
          // 发送请求上传数据
          const { data: res2 } =await request.post(url.scoreSave , temp)
          console.log(res2)
          // 表格创建完成之后刷新页面
          that.refreshData()

        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
  },
  /**
   * 生命周期函数--监听页面刷新
   */
  onRefresh:function(){
    console.log("我上拉了")
    // cookie拦截（最后再拦截，不然来回来去的跳页面会很麻烦）
    if(wx.getStorageSync('token') == ''){
      wx.redirectTo({
        url: '/pages/index/index'
      })
    }
    // 刷新页面
    this.refreshData()
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    // cookie拦截（最后再拦截，不然来回来去的跳页面会很麻烦）
    if(wx.getStorageSync('token') == ''){
      wx.redirectTo({
        url: '/pages/index/index'
      })
    }

    // 同步请求接收区域信息
    const { data: res1 } = await request.get(url.getArea , '')
    this.setData({
      area:res1.data,
    })
    // 将区域信息保存到data的multArray[0]里(multArray[1] 、multArray[2]不用管)
    let areaName = []
    res1.data.data.map((value , index) => {
      areaName[index] = value.name
    })
    console.log(areaName)
    this.setData({
      ['multiArray[0]']: areaName
    })

    // 同步请求接收厅信息
    const { data: res2 } = await request.get(url.getTing , '')
    this.setData({
      ting:res2.data,
    })
   
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
      ///////////cookie拦截////////////
  // if(app.globalData.header.Cookie == null){
  //   wx.redirectTo({
  //     url: '/pages/index/index'
  //   })
  // }
    // console.log("我显示了")
   // 检查token，如果有值就直接拿过来当缓存
   if (wx.getStorageSync('selectedArea') != null && wx.getStorageSync('selectedTing') != null && 
   wx.getStorageSync('selectedPhase') != null && wx.getStorageSync('selectedUser') != null) {
     this.setData({
       selectedArea: wx.getStorageSync('selectedArea'),
       selectedTing: wx.getStorageSync('selectedTing'),
       selectedPhase: wx.getStorageSync('selectedPhase'),
       selectedUser: wx.getStorageSync('selectedUser'),
     })
     this.refreshData()
    }
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
      ///////////cookie拦截////////////
  // if(app.globalData.header.Cookie == null){
  //   wx.redirectTo({
  //     url: '/pages/index/index'
  //   })
  // }
    this.onRefresh();
    var that = this;
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})